This invention relates generally to information systems and more particularly to a computing system having a scalable architecture that is capable of providing customized information to millions of users.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawing hereto: Copyright (copyright) 1998, Microsoft Corporation, All Rights Reserved.
The Internet is a worldwide collection of networks that span over 100 countries and connect millions of computers. In 1997 traffic on the Internet doubled every 100 days. At the end of 1997, more than 100 million people were using the Internet. Reports indicate that the Internet is growing faster than all preceding information technologies including radio and television. The World Wide Web (WWW) is one of the fastest growing facets of the Internet and represents the computers that support the hypertext transfer protocol (HTTP) which is a common protocol for exchanging information.
Because there is no central authority controlling the WWW, finding useful information within the WWW can be a daunting task. In an effort to ease this burden, specialized software, referred to as robots or crawlers, have been developed. These crawlers traverse the WWW in order to collect information and generate a searchable catalog. By searching the generated catalogs, Internet users are often able to find information that otherwise would have been impossible to locate. Although these catalogs can be of great assistance to an Internet user, the catalogs suffer from many deficiencies. For example, because of the amount of time required for the crawler to traverse even a portion of the WWW, the information in the catalog is often out of date. Furthermore, the resulting catalogs are so voluminous that the user is often overwhelmed with the search results, which can exceed tens of thousands of matches.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a computing system that provides Internet users with relevant, user-specific information by seamlessly aggregating information from a variety of information providers.
A computing system has been developed that provides Internet users with a customizable, aggregation of user-specific data, thereby obviating the need for users to endlessly search the WWW for information. The computing system aggregates information from a number of information providers, such as news services, weather services, stock services, personal email, and even community specific services. Because the information is rendered and aggregated in a user-specific fashion, each user therefore has a xe2x80x9chomexe2x80x9d or individual xe2x80x9cportalxe2x80x9d on the WWW at which the user""s most desired information is located.
The massively scalable computing system provides a highly reliable web site that is capable of handling millions of Internet users per day. The computing system includes a plurality of personalization stores that maintain personalization data for corresponding Internet users. In one embodiment, the computing system is based on a federated model in which a single entry point spans to a plurality of web servers executing Internet Information Server (IIS) on the Windows NT operating system. In another embodiment, each web server has an aggregation module, such as an Internet Server API (ISAPI) filter, that retrieves user-specific data from the personalization store and passes the data to one or more provider objects. The provider objects receive data from the information providers and render the data according to the personalization data retrieved from the personalization store. The aggregation module negotiates the layout of customized pages for each user based on the corresponding rendered data received from the provider objects.
According to one feature of the invention, each page of the site is stored in large file store and is defined in Extensible Markup Language (XML) and Extensible Style Language (XSL). In this manner, the content of each page can be enhanced by the rendered data from the provider objects, thereby adding dynamic behavior to the predefined page. According to another feature, the computing system implements a distributed cache in order to increase performance.